﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.ApplicationModel;
using System.Collections.ObjectModel;

namespace Anagramme.Contracts
{
    /// <summary>
    /// Définition d'un round
    /// </summary>
    [DataContract]
    public class RoundInfo : ObservableObject
    {
        #region Constructors
        /// <summary>
        /// Crée une nouvelle instance de la classe <see cref="RoundInfo"/>
        /// </summary>
        public RoundInfo()
        {
            this.BlueWords = new Collection<WordInfo>();
            this.RedWords = new Collection<WordInfo>();
        }
        #endregion

        #region Fields
        private int _wordsLength;
        #endregion

        #region Properties
        /// <summary>
        /// Obtient ou définit la liste des mots de l'équipe Bleue
        /// </summary>
        [DataMember]
        public Collection<WordInfo> BlueWords { get; private set; }

        /// <summary>
        /// Obtient ou définit la liste des mots de l'équipe Rouge
        /// </summary>
        [DataMember]
        public Collection<WordInfo> RedWords { get; private set; }

        /// <summary>
        /// Obtient ou définti la longueur des mots du round
        /// </summary>
        [DataMember]
        public int WordsLength
        {
            get { return this._wordsLength; }
            set
            {
                if (!this._wordsLength.Equals(value))
                {
                    base.RaisePropertyChanging();
                    this._wordsLength = value;
                    base.RaisePropertyChanged();
                }
            }
        }
        #endregion
    }
}
